pt_PT en_GB

Sistemas Distribuídos e Paralelos (2 º Sem Ano Lectivo 2024)

LECC

Sumários

Tipo do Turno:
Turno:
Docente:
Ordem:

09/11/2024 11:20 (Sala D1-SI4) Aula Prática

Defesas dos trabalhos Práticos

Defesas de trabalhos em grupos

Modificado em 09/12/2024 21:02 Prof. Belarmino Botão Presenças: não foram contabilizadas.

06/11/2024 17:20 (Sala D1-SI5) Aula Prática

Defesas dos trabalhos Práticos

Trabalhos em grupos

Modificado em 09/12/2024 21:01 Prof. Belarmino Botão Presenças: não foram contabilizadas.

05/11/2024 15:20 (Sala E-205) Aula Prática

Defesas dos trabalhos Práticos

Trabalhos em grupos

Modificado em 09/12/2024 21:00 Prof. Belarmino Botão Presenças: não foram contabilizadas.

02/11/2024 11:20 (Sala D1-SI4) Aula Prática

Defesa dos trabalhos Praticos

Trabalhos em Grpos de 3

Modificado em 09/12/2024 20:58 Prof. Belarmino Botão Presenças: não foram contabilizadas.

29/10/2024 15:20 (Sala E-205) Aula Teórica

Workstations em Sistemas Distribuidos

Conceito

Workstations - são computadores de alto desempenho projetados para tarefas técnicas e profissionais que requerem maior poder de processamento e recursos de hardware avançados em comparação com desktops comuns. Eles são usados em ambientes como design gráfico, modelagem 3D, engenharia, simulações científicas, análise de dados e desenvolvimento de Software.

Características das Workstations

1.       Desempenho:

o   Equipadas com processadores de múltiplos núcleos, maior capacidade de memória RAM e placas gráficas dedicadas, proporcionando um desempenho superior para aplicações exigentes.

2.       Confiabilidade:

o   Geralmente construídas com componentes de alta qualidade e podem incluir recursos como sistemas de resfriamento avançados e fontes de alimentação redundantes para garantir estabilidade durante longos períodos de uso.

3.       Expansibilidade:

o   Possuem slots e portas adicionais que permitem a adição de hardware extra, como placas de vídeo, armazenamento e dispositivos de rede.

4.       Sistema Operativo:

o   Frequentemente executam versões de sistemas operativos projetadas para ambientes profissionais, como Windows Pro, Linux ou sistemas operativos específicos para áreas técnicas.

5.       Optimizadas para Software:

o   Muitas vezes, são otimizadas para executar Software especializado em áreas como CAD (desenho assistido por computador), edição de vídeo e modelagem 3D.

Aplicações Comuns

  • Design Gráfico e Edição de Vídeo: Utilizadas por profissionais que trabalham com Softwares pesados, como Adobe Creative Suite.
  • Engenharia e Arquitectura: Usadas em programas de modelagem 3D e simulações.
  • Ciência e Pesquisa: Para processamento de dados complexos e análises em laboratórios e instituições acadêmicas.
  • Desenvolvimento de Software: Para compilar e testar aplicativos, especialmente em linguagens que exigem muitos recursos.

Vantagens

  • Desempenho Superior: Projectadas para lidar com tarefas que exigem muitos recursos.
  • Estabilidade e Confiabilidade: Construídas para funcionar continuamente em ambientes críticos.
  • Customização: Permitem que as empresas configurem o hardware de acordo com suas necessidades específicas.

Desafios

  • Custo: Geralmente mais caras que desktops comuns, tanto em termos de aquisição quanto de manutenção.
  • Complexidade: Requerem conhecimento técnico para otimização e manutenção, especialmente em configurações personalizadas.

As Workstations são uma escolha popular para profissionais que precisam de um desempenho robusto e confiável para suas tarefas especializadas

 

Modificado em 30/10/2024 11:02 Prof. Belarmino Botão Presenças: não foram contabilizadas.

23/10/2024 17:20 (Sala D1-SI5) Aula Teórica

Sistema Operativo Distrubuidos

 

Definição:

 

Um sistema operativo distribuído visa gerir e coordenar os recursos e processos em um conjunto de computadores que trabalham juntos como um único sistema.

Principais objectivos e metas de um sistema operativo distribuído:

 

1. Abstração de Recursos

 

  • O sistema operativo distribuído fornece uma camada de abstração que oculta a complexidade da distribuição dos recursos, permitindo que os usuários e aplicações interajam com o sistema de forma uniforme, sem precisar conhecer detalhes sobre onde os recursos estão localizados.

 

2. Gestão Eficiente de Recursos

 

  • Ele gere a alocação e o uso de recursos (como CPU, memória e armazenamento) entre os diferentes nós, otimizando o desempenho e garantindo que os recursos sejam utilizados de maneira eficiente.

 

3. Sincronização e Coordenação

 

  • Implementa mecanismos para sincronizar e coordenar processos que podem estar em execução em diferentes nós, garantindo a consistência dos dados e evitando conflitos entre processos concorrentes.

 

4. Transparência

 

  • Promove a transparência em relação a localização, migração, concorrência e falhas, permitindo que os usuários acedam recursos e serviços como se estivessem em um único sistema.

 

5. Confiabilidade e Tolerância a Falhas

 

  • Fornece mecanismos de tolerância a falhas, garantindo que o sistema continue a funcionar mesmo quando um ou mais nós falhem. Isso é crucial para manter a disponibilidade do serviço.

 

6. Escalabilidade

 

  • Permite que o sistema se expanda facilmente, suportando a adição de novos nós ou recursos sem comprometer o desempenho ou a funcionalidade.

 

7. Comunicação Eficiente

 

  • Facilita a comunicação entre processos em diferentes nós, utilizando protocolos de rede adequados para garantir a troca de informações de forma rápida e confiável.

 

8. Desempenho

 

  • Melhora o desempenho geral do sistema, permitindo a execução simultânea de tarefas em múltiplos nós, reduzindo o tempo de resposta e aumentando a eficiência.

 

 

 

 

Modificado em 30/10/2024 10:52 Prof. Belarmino Botão Presenças: não foram contabilizadas.

19/10/2024 11:20 (Sala D1-SI4) Aula Prática

TESTE DE FREQUENCIA 2

Avaliacao de Frequencia 2

Modificado em 30/10/2024 10:34 Prof. Belarmino Botão Presenças: não foram contabilizadas.

16/10/2024 17:20 (Sala D1-SI5) Aula Teórica

Defesas de trabalhos em grupos

GRUPO 2

Modelos Hibridos - Aspectos fundamentais em modelos hibridos em sistemas distribuidos

Os modelos híbridos em sistemas distribuídos combinam diferentes abordagens e técnicas para otimizar o desempenho, a escalabilidade e a flexibilidade. Aqui estão alguns aspectos fundamentais a considerar:

1. Arquitectura Flexível

  • Microserviços e Monolitos: Combinação de microserviços para partes do sistema que exigem escalabilidade e modularidade, com monolitos para componentes mais estáveis.
  • Edge Computing: Integração de computação local (edge) com nuvem, permitindo processamento de dados próximo à fonte para reduzir latência.

2. Modelos de Consistência

  • Consistência Eventual vs. Consistência Forte: Permite o uso de diferentes modelos de consistência conforme a necessidade da aplicação, equilibrando entre desempenho e integridade dos dados.

3. Gestao de Estado

  • Persistência Seletiva: Sincronização de dados apenas quando necessário, utilizando técnicas como detecção de mudanças para evitar comunicação excessiva.

4. Comunicação e Protocolos

  • Protocolos Mistos: Uso de protocolos tanto centralizados quanto descentralizados, adaptando a comunicação para diferentes partes do sistema.

5. Escalabilidade e Resiliência

  • Distribuição de Carga: Capacidade de escalar horizontalmente adicionando mais nós, enquanto mantém a resiliência ao falhar de componentes individuais.
  • Failover e Redundância: Implementação de estratégias para garantir que o sistema continue operando mesmo com falhas.

6. Segurança

  • Segurança em Camadas: Aplicação de diferentes níveis de segurança conforme a sensibilidade dos dados e a criticidade das operações.

7. Gestão de Recursos

  • Orquestração e Monitoramento: Ferramentas para gerenciar a alocação de recursos e monitorar a saúde do sistema, garantindo um desempenho otimizado.

8. Experiência do Usuário

  • Transparência: O sistema deve operar de forma a esconder a complexidade da infraestrutura distribuída do usuário, proporcionando uma experiência coesa.

Conclusão

Os modelos híbridos em sistemas distribuídos oferecem flexibilidade e adaptabilidade, permitindo que diferentes componentes e serviços sejam otimizados para suas necessidades específicas. Isso resulta em um sistema mais robusto e eficiente

 

 

Modificado em 30/10/2024 11:23 Prof. Belarmino Botão Presenças: não foram contabilizadas.

12/10/2024 11:20 (Sala D1-SI4) Aula Teórica

Defesa dos trabalhos em grupo: Sistemas Centralizados Vs Sistemas Descentralizados

A distinção entre sistemas centralizados e descentralizados é fundamental em arquitetura de sistemas e design de software.

Principais características e diferenças entre esses dois tipos de sistemas

Sistemas Centralizados

  1. Arquitectura:
    • Todos os recursos e dados estão concentrados em um único servidor ou em um pequeno número de servidores.
    • A gestão e o controlo estão centralizados, geralmente em uma única entidade.
  2. Controlo:
    • Um único ponto de controlo toma decisões e gestão todas as operações.
    • A segurança e a integridade dos dados são mais fáceis de gerenciar, pois estão em um único local.
  3. Comunicação:
    • Os usuários e os dispositivos se comunicam diretamente com o servidor central para aceder recursos ou dados.
    • A latência pode ser menor em transações simples, pois não há necessidade de comunicação entre múltiplos nós.
  4. Manutenção:
    • A manutenção e a atualização são mais simples, pois estão concentradas em um único local.
    • No entanto, se o servidor central falhar, todo o sistema pode ser afetado.
  5. Escalabilidade:
    • A escalabilidade pode ser limitada, pois a capacidade do servidor central pode se tornar um gargalo à medida que mais usuários ou dados são adicionados.

Sistemas Descentralizados

  1. Arquitectura:
    • Recursos e dados são distribuídos por vários nós ou servidores, que podem estar localizados em diferentes locais.
    • Não há um único ponto de controlo; a gestão é distribuída entre os nós.
  2. Controlo:
    • Cada nó pode operar de forma independente, tomando decisões localmente.
    • Isso pode aumentar a resiliência, pois a falha de um nó não compromete o funcionamento do sistema como um todo.
  3. Comunicação:
    • Os nós se comunicam entre si, o que pode introduzir latência devido à necessidade de troca de informações.
    • A comunicação pode ser mais complexa, exigindo protocolos adequados para garantir a consistência e a integridade dos dados.
  4. Manutenção:
    • A manutenção pode ser mais complexa, pois envolve vários nós, cada um com suas próprias atualizações e configurações.
    • A resiliência é maior; se um nó falhar, os outros podem continuar a operar.
  5. Escalabilidade:
    • Geralmente, mais escaláveis, pois novos nós podem ser adicionados sem comprometer o desempenho do sistema existente.
    • A distribuição da carga entre vários nós pode melhorar o desempenho.
Modificado em 30/10/2024 11:29 Prof. Belarmino Botão Presenças: não foram contabilizadas.

05/10/2024 11:20 (Sala D1-SI4) Aula Teórica

Modelo de Minicomputadores

Conceito

O modelo de minicomputadores, ou minicomputadores, refere-se a uma classe de sistemas computacionais que surgiram nas décadas de 1960 e 1970 como uma alternativa entre os microcomputadores e os mainframes.

Características dos MiniComputadores

1.       Capacidade de Processamento:

o   Oferecem maior capacidade de processamento em comparação com microcomputadores, mas são menos potentes que os mainframes. São adequados para aplicações empresariais e técnicas.

2.       Multiusuário:

o   Suportam múltiplos usuários simultaneamente, permitindo que várias pessoas acedam o sistema ao mesmo tempo.

3.       Tamanho Compacto:

o   São menores que mainframes, mas maiores que microcomputadores, permitindo uma instalação mais prática em ambientes de escritório.

4.       Flexibilidade:

o   Podem ser configurados para atender a diferentes necessidades, com uma variedade de opções de hardware e software.

Aplicações Comuns

  • Ambientes Empresariais: Usados para processamento de dados, Gestão de inventário, sistemas de controle de produção e aplicações de negócios.
  • Pesquisa e Desenvolvimento: Utilizados em laboratórios e instituições de pesquisa para processamento de dados científicos e experimentos.
  • Educação: Servem como servidores para laboratórios acadêmicos, permitindo que vários alunos trabalhem simultaneamente.

Exemplos Históricos

  • PDP-11: Um dos minicomputadores mais famosos, desenvolvido pela Digital Equipment Corporation (DEC), amplamente utilizado em várias aplicações.
  • VAX: Também da DEC, a série VAX expandiu as capacidades dos minicomputadores e se tornou popular na década de 1980.

Vantagens

  • Custo: Mais acessíveis que mainframes, oferecendo um bom custo-benefício para muitas organizações.
  • Eficiência: Capazes de executar tarefas complexas sem a necessidade de infraestrutura de grande porte.
  • Escalabilidade: Podem ser ampliados com a adição de novos recursos, como memória e armazenamento.

Desafios

  • Limitações de Escalabilidade: Embora escaláveis, não têm a mesma capacidade de crescimento que mainframes para grandes volumes de dados.
  • Obsolescência: Com o avanço da tecnologia, muitos minicomputadores foram substituídos por servidores mais potentes e eficientes.

 

Os minicomputadores desempenharam um papel importante na evolução da computação, especialmente em ambientes onde a versatilidade e a capacidade de suporte a múltiplos usuários eram necessárias

 

Modificado em 30/10/2024 11:19 Prof. Belarmino Botão Presenças: não foram contabilizadas.

02/10/2024 17:20 (Sala D1-SI5) Aula Teórica

Consistencia e Replicacao

Consistência e replicação são conceitos fundamentais em sistemas distribuídos, bancos de dados e armazenamento de dados. Vamos explorar esses conceitos e como eles se relacionam.

Consistência

Definição

Tipos de Consistência:

1. Consistência Forte

2. Consistência Eventual

3. Consistência Causal

4. Consistência Linearizável

Replicação

Definição

Tipos de Replicação:

1. Replicação Sincrona

2. Replicação Assíncrona

3. Replicação Multi-Mestre

Relação entre Consistência e Replicação

- Desafio da Consistência

- Teorema CAP - Um sistema pode ser consistente e disponível, mas não tolerante a partições.

  - Um sistema pode ser disponível e tolerante a partições, mas não consistente.

 

 

Modificado em 02/10/2024 19:28 Prof. Belarmino Botão Presenças: não foram contabilizadas.

01/10/2024 15:20 (Sala E-205) Aula Teórica

Sistema de Nomes

Conceito

Um **sistema de nomes** é uma estrutura ou conjunto de regras que permite a identificação e a localização de recursos dentro de um sistema. Ele é crucial em diversas áreas, como sistemas operacionais, redes, bancos de dados e sistemas de arquivos. Vamos explorar os conceitos fundamentais e as aplicações dos sistemas de nomes.

Características de um Sistema de Nomes

1. Identificação Única

2. Hierarquia

3. Resolução de Nomes

4. Simplicidade e Clareza

Exemplos de Sistemas de Nomes

1. Sistemas de Arquivos

2. DNS (Domain Name System)

3. Nomes de Variáveis em Programação

4. Sistemas de Banco de Dados

Vantagens de um Sistema de Nomes

- Facilidade de Acesso.

- Organização

- Desempenho

Desafios e Considerações

- Conflitos de Nomes

- Manutenção

- Escalabilidade

Modificado em 02/10/2024 19:24 Prof. Belarmino Botão Presenças: não foram contabilizadas.

28/09/2024 11:20 (Sala D1-SI4) Aula Teórica

Estrutura de comunicacao entre processos

A comunicação entre processos (IPC, do inglês Inter-Process Communication) é fundamental em sistemas operacionais, especialmente em ambientes multitarefa, onde múltiplos processos precisam interagir. Existem várias estruturas e mecanismos para facilitar essa comunicação. Vamos explorar algumas das principais.

 

Estruturas de Comunicação entre Processos

1. Pipes (Tuberias)

2. Named Pipes (FIFO)

3. Sockets

4. Mensagens

5. Memória Partilhada

6. Semáforos

Exemplos de Uso

- Pipes

- Sockets

- Memória Partilhada

 

Modificado em 02/10/2024 19:18 Prof. Belarmino Botão Presenças: não foram contabilizadas.

24/09/2024 15:20 (Sala E-205) Aula Teórica

Paradigmas de comunicacao

Conceito - Os paradigmas de comunicação em sistemas computacionais referem-se às diferentes maneiras pelas quais processos ou threads se comunicam entre si, trocando dados e coordenando suas atividades. Vamos explorar os principais paradigmas de comunicação, suas características, vantagens e desvantagens.

1. Comunicação Sincrona

2. Comunicação Assíncrona

3. Comunicação por Mensagens

4. Comunicação Partilhada

5. Comunicação Baseada em Eventos

Modificado em 02/10/2024 19:12 Prof. Belarmino Botão Presenças: não foram contabilizadas.

21/09/2024 11:20 (Sala D1-SI4) Aula Teórica

Sistemas Centralizados Vs Descentralizados

Sistemas Centralizados

Definição: Em um sistema centralizado, todas as funções e processos são gerenciados a partir de um único ponto de controlo. Isso significa que um único servidor ou entidade é responsável por armazenar dados, processar informações e gerenciar recursos.

Características:

  • Controlo Centralizado: Todas as operações são coordenadas e controladas por um servidor central.
  • Armazenamento Central: Dados e recursos estão localizados em um único lugar.
  • Comunicação: Os clientes ou usuários se comunicam diretamente com o servidor central.

Vantagens:

  1. Facilidade de Gestão
  2. Consistência de Dados
  3. Segurança

Desvantagens:

  1. Ponto Único de Falha
  2. Escalabilidade Limitada
  3. Desempenho

Sistemas Descentralizados

Definição: Em um sistema descentralizado, o controlo e a gestão são distribuídos entre vários pontos. Isso significa que diferentes nós ou entidades podem operar de forma independente, com menor dependência de um único servidor central.

Características:

  • Controlo Distribuído
  • Armazenamento Distribuído.
  • ComunicaçãoVantagens:
  1. Resiliência.
  2. Escalabilidade
  3. Flexibilidade

Desvantagens:

  1. Complexidade de Gestão.
  2. Consistência de Dados
  3. Segurança
Modificado em 02/10/2024 19:05 Prof. Belarmino Botão Presenças: não foram contabilizadas.

18/09/2024 17:20 (Sala D1-SI5) Aula Teórica

Abstracao de Programacao

Visao Geral sobre A abstração em programação

Conceito

O que é Abstração?

A abstração permite que você represente entidades do mundo real, operações e interações de maneira simplificada. Isso é feito através da definição de interfaces, classes e funções, que encapsulam a lógica complexa e expõem apenas o que é necessário para a interação.

Níveis de Abstração

1.       Abstração de Dados;

2.       Abstração Funcional;

3.       Abstração de Objetos;

Modificado em 02/10/2024 19:01 Prof. Belarmino Botão Presenças: não foram contabilizadas.

17/09/2024 15:20 (Sala E-205) Aula Teórica

Programacao com variáveis partilhadas

Conceitos Fundamentais

1.       Variáveis Partilhadas: São aquelas que podem ser acessadas por diferentes threads ou processos. O acesso a essas variáveis deve ser cuidadosamente gerenciado para evitar inconsistências.

2.       Secções Críticas: Partes do código que acessam variáveis compartilhadas. Para garantir a integridade dos dados, apenas um thread deve executar a seção crítica por vez.

3.       Condições de Corrida: Ocorrem quando dois ou mais threads tentam acessar e modificar uma variável compartilhada ao mesmo tempo, levando a resultados imprevisíveis.

 

Mecanismos de Sincronizacao

1. Mutex (Mutual Exclusion)

2. Semáforos

3. Monitores

 

 

Modificado em 02/10/2024 18:57 Prof. Belarmino Botão Presenças: não foram contabilizadas.

04/09/2024 17:20 (Sala D1-SI5) Aula Teórica

Deadlocks

 

Definição de Deadlock

Condições Necessárias para um Deadlock

Condições para o deadlock:

1.       Exclusão Mútua: Pelo menos um recurso deve estar em modo não compartilhável; ou seja, apenas um processo pode usá-lo de cada vez.

2.       Posses e Espera: Um processo que já possui pelo menos um recurso está aguardando por outros recursos que estão sendo mantidos por outros processos.

3.       Não Preempção: Os recursos não podem ser retirados de um processo. Um recurso só pode ser liberado voluntariamente pelo processo que o possui.

4.       Espera Circular: Existe uma cadeia de processos onde cada processo está esperando por um recurso que o próximo processo na cadeia possui

 

 

Modificado em 02/10/2024 18:51 Prof. Belarmino Botão Presenças: não foram contabilizadas.

28/08/2024 17:20 (Sala D1-SI5) Aula Teórica

Exclusao Mútua e sessoes críticas

 

O que é?

 

Exclusão Mútua

 

Importância:

 

·       Garante que as operações em dados compartilhados sejam atômicas.

 

·       Mantém a integridade e a consistência dos dados.

 

Secções Críticas

 

Características:

 

  • Todo acesso a recursos compartilhados deve ocorrer dentro de uma seção crítica.
  • Apenas um processo ou thread pode estar em sua seção crítica ao mesmo tempo.

 

Mecanismos de Controlo de Exclusão Mútua

Para impelmentar a exclusao Mutua e proteger as seccoes críticas, existem vários, vários mecanismos, incluindo:

 

1.       Mutex (Mutual Exclusion)

 

2.       Semáforos

 

3.       Monitores

 

4.       Locks

 

5.       Barreiras

 

 

Modificado em 02/10/2024 18:47 Prof. Belarmino Botão Presenças: não foram contabilizadas.

24/08/2024 11:20 (Sala D1-SI4) Aula Teórica

Condicoes de corrida - Sincorinizacao de processos

Condições de Corrida

Definição.

Causas:

  • Acesso Concorrente
  • Falta de Sincronização

Sincronização de Processos

Mecanismos de Sincronização:

1.       Mutex (Mutual Exclusion):

    • Um objecto que garante que apenas um processo ou thread pode acessar um recurso compartilhado de cada vez.
    • Quando uma thread "trava" o mutex, as outras threads que tentam acessar os mesmos recursos ficam bloqueadas até que o mutex seja liberado.

2.       Semáforos:

    • Um contador que controla o acesso a um recurso compartilhado, permitindo que um número limitado de processos ou threads acesse o recurso simultaneamente.
    • Semáforos podem ser binários (0 ou 1) ou contar.

3.       Monitores:

    • Uma abstração que combina mutexes e condições de espera. Monitores permitem que threads esperem até que uma condição seja verdadeira antes de continuar a execução.

4.       Barreiras:

    • Um mecanismo que faz com que múltiplas threads esperem até que todas tenham chegado a um ponto específico antes de continuar.

5.       Lock-Free e Wait-Free:

    • Algoritmos que permitem acesso a recursos compartilhados sem a necessidade de locks (bloqueios), evitando problemas de deadlock e aumentando a eficiência.

 

Modificado em 02/10/2024 18:37 Prof. Belarmino Botão Presenças: não foram contabilizadas.

21/08/2024 17:20 (Sala D1-SI5) Aula Teórica

Paralelismo de Dados Vs Tarefas

Paralelismo de Tarefas

Conceito

Envolvencia - envolve a execução simultânea de diferentes tarefas ou funções, onde cada tarefa pode ser independente ou interdependente. Em vez de operar nos mesmos dados, diferentes tarefas são realizadas em paralelo.

Características:

  • Tarefas Diferentes: As tarefas podem ser completamente diferentes e podem ou não compartilhar dados.
  • Independência: Cada tarefa pode ser executada independentemente, e o resultado de uma tarefa não precisa esperar a conclusão de outra.

Exemplos:

  • Executar diferentes partes de um programa, como cálculos e entrada/saída, simultaneamente.
  • Em um servidor web, atender múltiplas requisições de usuários de forma simultânea.

Vantagens:

  • Maior flexibilidade, pois diferentes tarefas podem ser executadas em paralelo, aproveitando melhor os recursos do sistema.
  • Aumenta a capacidade de resposta em aplicações onde múltiplas tarefas precisam ser processadas ao mesmo tempo.

Desvantagens:

  • A coordenação entre tarefas pode ser complexa, especialmente se as tarefas dependerem de dados compartilhados.
  • A sobrecarga de comunicação entre as tarefas pode impactar o desempenho.

 

Modificado em 02/10/2024 18:29 Prof. Belarmino Botão Presenças: não foram contabilizadas.

17/08/2024 11:20 (Sala D1-SI4) Aula Teórica

Paralelismo de Dados Vs Tarefas

Conceito

Quando ocorre?

O paralelismo de dados ocorre quando uma única tarefa é dividida em várias partes menores que podem ser executadas simultaneamente. Cada parte opera em diferentes conjuntos de dados.

Características:

  • Divisão de Dados.
  • Tarefas Idênticas

Exemplos:

  • Processamento de grandes matrizes em álgebra linear.
  • Aplicação de filtros em imagens (como aplicar o mesmo filtro a diferentes seções de uma imagem).

Vantagens:

  • Pode levar a um aumento significativo de desempenho quando grandes volumes de dados são processados.
  • Alta eficiência em operações que podem ser paralelizadas.

Desvantagens:

  • A eficiência depende do balanceamento da carga entre os processadores; se algumas partes demorarem mais, o desempenho geral pode ser afetado (problema do load balancing).
  • A comunicação entre as partes pode se tornar um gargalo se não for gerida adequadamente.

 

Modificado em 02/10/2024 18:27 Prof. Belarmino Botão Presenças: não foram contabilizadas.

14/08/2024 17:20 (Sala D1-SI5) Aula Prática

Paradigmas de Comunicacao de Processos

• Sincrona;

• Assincrona;

• Pipilines

Como é definida o tamanho da mensagem

Modificado em 02/10/2024 18:22 Prof. Belarmino Botão Presenças: não foram contabilizadas.

13/08/2024 15:20 (Sala E-205) Aula Prática

Seguranca em Sistemas Distribuidos e Sistemas Paralelos

•  Não repudio:

•  Politica de acesso:

•  ndicar um exemplo prático.

•  Não devem faltar

Modificado em 02/10/2024 18:19 Prof. Belarmino Botão Presenças: não foram contabilizadas.

10/08/2024 11:20 (Sala D1-SI4) Aula Teórica

Topologia dos sistemas Distribuidos Fully Conneted e Multi-Hop

 

Redundancia; e

Nao deve faltar

Modificado em 02/10/2024 18:18 Prof. Belarmino Botão Presenças: não foram contabilizadas.

07/08/2024 17:20 (Sala D1-SI5) Aula Teórica

Memória Partilhada Vs Memória Distribuida

Definição: Em sistemas de memória partilhada, múltiplos processadores ou núcleos têm acesso a um espaço de memória comum. Isso permite que todos os processadores acessem e modifiquem os mesmos dados simultaneamente.

Características:

  1. Acesso Rápido.
  2. Consistência
  3. Complexidade de Sincronização

Exemplos:

  • Sistemas operacionais com múltiplos threads (como em servidores de aplicação).
  • Programação paralela em ambientes como OpenMP.

Vantagens:

Desvantagens:

Modificado em 02/10/2024 18:15 Prof. Belarmino Botão Presenças: não foram contabilizadas.

06/08/2024 15:20 (Sala E-205) Aula Teórica

Taxonomia de Flynn

Sua função - classifica arquiteturas de computadores com base em como as instruções e dados são processados. Ela é dividida em quatro categorias:

  • SISD (Single Instruction stream Single Data stream)
  • SIMD (Single Instruction stream Multiple Data streams)
  • MISD (Multiple Instruction streams Single Data stream)
  • MIMD (Multiple Instruction streams Multiple Data streams)

 

Modificado em 02/10/2024 18:07 Prof. Belarmino Botão Presenças: não foram contabilizadas.

03/08/2024 11:20 (Sala D1-SI4) Aula Teórica

Sistemas Paralelos

Definição (entendimento do que é, relactivamente aos SD's)

Características:

1. Execucao Simultanea;

2. Comunicacao Rápida;

3. Granularidade

Modificado em 02/10/2024 17:56 Prof. Belarmino Botão Presenças: não foram contabilizadas.

31/07/2024 17:20 (Sala D1-SI5) Aula Teórica

Caracteristicas de Sistemas Distribuidos

Caracteristicas que definem os Sistemas Ditribuidos, nomeadamente:

1. Transparencia;

2. Escalabilidade;

3. Confiabilidade;

4. Comunicação

Exemplos:

  • Servidores de núvem (como AWS, Google Cloud);
  • Sistemas de arquivos distribuidos (como HDFS);
  • Redes de sensores

 

 

Modificado em 02/10/2024 17:51 Prof. Belarmino Botão Presenças: não foram contabilizadas.

30/07/2024 15:20 (Sala E-205) Aula Teórica

Visao Geral de Sisemas Distribuidos e Paralelos

Sistemas Distribuídos

Conceito e entendimento do que é na essencia

Caracteristicas

Modificado em 02/10/2024 17:46 Prof. Belarmino Botão Presenças: não foram contabilizadas.